package com.xingkeduo.business.user.controller;

import com.xingkeduo.business.transformation.json.CraftsmanDutyJTO;
import com.xingkeduo.business.user.domain.ManageInfoDomain;
import com.xingkeduo.pojo.query.CraftsmanDutyQO;
import com.xingkeduo.util.pojo.base.BaseController;
import com.xingkeduo.util.tool.ReturnUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.web.bind.annotation.*;

/**
 * 岗位
 * 
 * @author 高杰
 * @time 2019年1月12日 下午4:58:45
 * @description
 */
//@CrossOrigin
@RestController
@RequestMapping("/craftsman/duty")
public class CraftsmanDutyController extends BaseController {
	@Autowired
	private ManageInfoDomain manageInfoDomain;

	/**
	 * 查询接口
	 * 
	 * @author 高杰
	 * @time 2019年1月12日 下午4:58:49
	 * @param url
	 * @return
	 */
	@GetMapping(value = "/{url:.+}")
	public String doGet(@PathVariable String url) {
		returnUtil = new ReturnUtil();
		try {
			CraftsmanDutyQO craftsmanQuery = CraftsmanDutyJTO.createQueryForPrimary(url);
			return returnUtil.getSuccess(CraftsmanDutyJTO.toJson(manageInfoDomain.getCraftsmanDuty(craftsmanQuery)));
		} catch (Throwable t) {
			return dealException(t, returnUtil);
		}
	}

	/**
	 * 添加接口
	 * 
	 * @author 高杰
	 * @time 2019年1月12日 下午4:58:55
	 * @param body
	 * @return
	 */
	@PostMapping(value = "")
	public String doPost(@RequestBody String body, ServerHttpRequest request) {
		returnUtil = new ReturnUtil();
		try {
//			manageInfoDomain.newCraftsmanDuty(CraftsmanDutyJTO.createTableForNew(body), 1);
			manageInfoDomain.newCraftsmanDuty(CraftsmanDutyJTO.createTableForNew(body), getOperator(request));
			return returnUtil.getSuccess();
		} catch (Throwable t) {
			return dealException(t, returnUtil);
		}
	}

	/**
	 * 修改接口
	 * 
	 * @author 高杰
	 * @time 2019年1月12日 下午4:58:59
	 * @param url
	 * @param body
	 * @return
	 */
	@PutMapping(value = "/{url:.+}")
	public String doPut(@PathVariable String url, @RequestBody String body, ServerHttpRequest request) {
		returnUtil = new ReturnUtil();
		try {
//			manageInfoDomain.modifyCraftsmanDuty(CraftsmanDutyJTO.createTableForModify(body).setId(CraftsmanDutyJTO.createQueryForPrimary(url).getId()), 1);
			manageInfoDomain.modifyCraftsmanDuty(CraftsmanDutyJTO.createTableForModify(body).setId(CraftsmanDutyJTO.createQueryForPrimary(url).getId()), getOperator(request));
			return returnUtil.getSuccess();
		} catch (Throwable t) {
			return dealException(t, returnUtil);
		}
	}
}
